#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/8/26 21:41
# @Author  : khz_pc
# @Site    : 
# @File    : 52.py
# @Software: ce9nt
"""
http://www.shiyanbar.com/ctf/52
http://ctf5.shiyanbar.com/qwctf/flag-checker.html

答案：
https://blog.csdn.net/charlie_heng/article/details/53405341
http://gwenchen.blog.sohu.com/309099270.html
"""


import os
import re


def pwn():
    # a.length == 47 &&
    js = """a[11] - a[5] % a[1] * a[12] % a[14] - a[6] * a[7] - a[24] + a[10] % a[13] + a[2] * a[23] + a[21] + a[15] % a[3] % a[19] - a[20] * a[0] % a[17] + a[18] - a[22] + a[8] + a[4] - a[9] + a[25] + a[16] == -161 && a[14] + a[19] % a[20] - a[3] - a[4] + a[5] % a[23] % a[12] % a[21] - a[18] % a[24] % a[0] + a[6] * a[17] - a[7] * a[9] - a[10] + a[8] + a[22] * a[15] % a[16] - a[26] - a[1] % a[11] + a[2] + a[25] + a[13] == -42 && a[34] + a[27] + a[29] - a[10] * a[13] * a[20] % a[31] + a[2] * a[23] - a[0] * a[8] - a[6] * a[9] - a[19] % a[3] + a[15] % a[1] - a[25] - a[26] * a[16] % a[30] - a[17] + a[12] + a[5] - a[33] + a[21] + a[24] * a[14] + a[11] * a[32] - a[22] * a[4] + a[18] + a[28] - a[7] == -56 && a[20] + a[13] % a[4] - a[21] + a[16] - a[12] + a[11] % a[9] % a[3] % a[0] * a[8] % a[2] + a[5] % a[17] + a[15] - a[10] % a[18] - a[6] - a[1] - a[19] * a[7] % a[14] == -76 && a[6] % a[29] + a[4] + a[18] % a[22] + a[16] + a[30] - a[19] * a[21] + a[24] + a[5] - a[34] * a[13] + a[17] * a[11] - a[31] * a[23] + a[14] + a[28] + a[20] - a[10] + a[32] + a[33] % a[12] * a[26] + a[2] % a[15] * a[1] + a[27] * a[25] - a[3] % a[7] % a[8] * a[9] - a[0] + a[35] == -129 && a[1] * a[3] * a[5] % a[6] - a[2] % a[0] + a[4] - a[7] == 18 && a[19] + a[20] + a[4] + a[0] - a[17] - a[8] - a[2] * a[7] + a[18] - a[14] - a[3] - a[5] + a[10] - a[11] + a[6] * a[1] % a[13] % a[15] * a[12] - a[9] - a[16] == -36 && a[6] - a[1] + a[4] + a[0] % a[5] % a[2] - a[3] == 21 && a[1] - a[5] % a[4] % a[8] % a[3] - a[10] - a[0] % a[7] % a[9] % a[6] - a[2] == -157 && a[9] % a[5] - a[11] + a[7] - a[0] % a[10] * a[4] % a[3] + a[1] - a[6] % a[8] + a[2] == 99 && a[1] + a[4] % a[0] % a[3] * a[7] % a[6] - a[8] - a[2] + a[5] == 127 && a[8] + a[34] % a[10] % a[4] % a[16] + a[25] + a[15] - a[31] - a[2] * a[3] - a[27] * a[13] % a[23] % a[1] + a[17] * a[26] + a[5] % a[30] + a[35] % a[36] + a[22] % a[7] % a[29] - a[21] + a[28] * a[18] - a[37] + a[38] + a[11] % a[20] + a[9] - a[32] - a[0] * a[14] + a[33] * a[12] + a[24] - a[19] + a[6] == 4 && a[2] - a[1] - a[3] + a[0] == -12 && a[6] % a[25] % a[17] + a[24] - a[23] + a[15] % a[31] * a[13] + a[29] - a[12] % a[0] * a[11] - a[27] + a[5] - a[2] - a[10] % a[28] * a[14] - a[8] + a[7] * a[22] + a[26] + a[3] % a[21] + a[32] - a[20] * a[4] + a[30] + a[18] * a[16] - a[9] % a[1] % a[19] == 132 && a[17] - a[11] + a[1] - a[0] % a[5] * a[12] % a[13] + a[4] % a[14] - a[10] - a[15] % a[8] % a[7] + a[6] - a[2] % a[16] + a[9] + a[3] == 128 && a[28] + a[19] * a[9] + a[26] % a[5] - a[22] + a[3] % a[4] + a[12] % a[0] + a[25] % a[2] % a[13] - a[15] + a[23] % a[21] * a[27] % a[20] % a[16] % a[11] + a[24] % a[7] - a[6] * a[1] - a[14] + a[18] + a[10] % a[8] - a[17] == -43 && a[11] * a[2] % a[19] * a[6] - a[14] + a[32] * a[1] % a[28] - a[3] % a[27] - a[4] + a[13] + a[24] % a[12] - a[10] + a[23] - a[15] % a[0] % a[31] % a[16] - a[17] * a[7] % a[21] % a[20] % a[25] * a[8] + a[22] * a[18] % a[5] - a[26] + a[33] + a[9] % a[30] % a[29] == 87 && a[11] * a[17] % a[16] - a[18] % a[13] + a[10] + a[0] % a[5] - a[23] + a[15] * a[21] % a[20] + a[9] + a[7] - a[19] * a[2] - a[24] + a[1] * a[14] + a[6] % a[4] % a[8] % a[3] - a[22] - a[12] == -130 && a[1] - a[3] - a[6] * a[9] % a[13] - a[18] + a[2] * a[12] * a[7] % a[0] - a[16] + a[17] - a[4] * a[5] % a[14] + a[10] * a[11] * a[15] % a[8] == -123 && a[14] - a[26] - a[21] + a[34] % a[15] + a[9] + a[19] % a[13] + a[36] + a[18] % a[11] * a[12] % a[30] + a[29] + a[31] % a[17] - a[5] * a[24] * a[20] % a[8] % a[22] - a[4] - a[25] % a[10] - a[6] - a[3] - a[0] * a[23] % a[35] + a[28] % a[16] % a[32] % a[2] + a[33] - a[1] * a[27] % a[7] == -75 && a[31] % a[38] + a[23] % a[33] - a[10] * a[3] + a[5] + a[35] - a[20] % a[27] * a[13] + a[30] % a[14] * a[1] % a[6] + a[37] % a[4] - a[26] * a[21] - a[7] - a[36] - a[16] * a[0] + a[28] * a[34] * a[42] * a[41] % a[9] - a[15] + a[19] * a[24] + a[11] * a[17] + a[39] % a[32] + a[43] + a[18] * a[2] - a[12] - a[25] - a[29] - a[22] + a[8] * a[40] == 123 && a[4] * a[3] % a[2] % a[0] - a[5] + a[1] == 48 && a[25] - a[30] + a[16] - a[37] - a[21] * a[36] * a[4] % a[11] + a[32] - a[29] % a[34] - a[2] + a[20] % a[1] + a[10] - a[33] + a[0] % a[19] - a[22] + a[8] + a[13] % a[31] + a[17] % a[24] % a[7] + a[26] - a[3] % a[14] % a[12] * a[5] % a[18] - a[23] * a[6] % a[28] + a[15] - a[35] + a[27] % a[9] == 21 && a[2] - a[4] + a[3] % a[0] + a[1] == 83 && a[7] * a[21] * a[12] % a[3] - a[17] - a[38] + a[23] + a[6] % a[28] % a[27] % a[14] % a[39] + a[13] + a[32] + a[40] - a[4] - a[8] % a[11] % a[25] * a[31] + a[20] * a[24] % a[29] % a[34] * a[30] % a[33] % a[5] - a[26] * a[18] % a[2] + a[10] + a[36] * a[9] % a[37] * a[19] - a[15] * a[1] % a[35] % a[22] % a[16] - a[0] == 75 && a[27] * a[29] * a[11] % a[8] - a[24] * a[16] + a[10] % a[2] % a[7] * a[6] + a[23] + a[0] + a[4] * a[22] - a[30] + a[12] - a[17] % a[5] % a[1] * a[15] - a[19] * a[20] - a[3] - a[9] - a[13] + a[25] * a[18] % a[14] + a[26] % a[28] * a[21] == 19 && a[45] - a[9] % a[42] - a[0] + a[44] % a[20] * a[13] - a[38] % a[36] * a[17] + a[24] + a[31] + a[28] - a[7] % a[16] * a[39] * a[25] * a[1] % a[14] * a[41] - a[18] - a[4] - a[3] % a[10] + a[23] % a[12] + a[37] * a[29] % a[2] + a[30] - a[22] + a[32] % a[34] + a[33] + a[8] % a[26] * a[11] * a[15] % a[40] % a[5] % a[19] - a[21] + a[43] % a[6] * a[35] + a[27] == -76 && a[7] + a[9] + a[1] - a[11] * a[5] * a[3] % a[12] - a[13] - a[4] - a[6] + a[8] % a[2] % a[0] % a[10] == -84 && a[0] - a[1] == -6 && a[2] - a[6] % a[8] + a[7] - a[4] - a[1] % a[3] + a[9] - a[5] + a[0] == 50 && a[44] - a[24] + a[25] % a[30] % a[41] * a[3] - a[23] + a[20] * a[38] + a[15] - a[43] + a[8] - a[29] * a[9] + a[27] + a[33] - a[39] * a[18] % a[0] + a[7] - a[6] - a[42] - a[2] + a[31] + a[4] - a[32] * a[40] - a[22] + a[13] + a[34] % a[17] * a[14] % a[37] + a[36] - a[10] * a[5] % a[11] * a[19] + a[12] + a[16] % a[35] * a[21] + a[28] - a[26] - a[1] == -44 && a[9] % a[3] % a[7] % a[0] % a[4] - a[2] - a[11] - a[12] + a[6] - a[5] % a[10] + a[8] - a[1] == -187 && a[8] % a[7] + a[6] - a[14] - a[4] % a[17] + a[11] - a[12] % a[5] % a[2] + a[15] - a[9] % a[10] * a[13] % a[0] - a[18] + a[19] + a[16] - a[3] - a[1] == -7 && a[12] % a[3] + a[15] - a[0] - a[11] + a[13] + a[4] * a[2] % a[1] - a[10] - a[5] + a[9] + a[6] % a[7] * a[8] % a[14] == -22 && a[4] + a[16] + a[10] + a[5] - a[7] - a[11] - a[9] % a[13] - a[1] - a[12] % a[2] * a[14] % a[8] % a[6] + a[3] - a[15] % a[0] == 97 && a[0] * a[1] % a[11] * a[14] % a[10] + a[5] + a[7] % a[13] - a[4] % a[19] - a[15] - a[8] % a[18] % a[21] % a[12] % a[17] - a[3] % a[9] - a[6] + a[20] + a[16] + a[22] - a[2] == 112 && a[0] == 102 && a[2] + a[0] - a[1] == 91 && a[5] * a[4] % a[12] + a[18] + a[27] + a[22] + a[21] - a[10] - a[25] - a[20] % a[7] + a[14] % a[17] % a[23] + a[19] * a[13] % a[26] - a[1] * a[3] % a[8] + a[24] - a[6] + a[16] + a[0] - a[9] - a[15] % a[2] - a[11] == 163 && a[8] * a[10] * a[4] * a[21] % a[26] * a[6] % a[14] + a[22] * a[5] + a[18] - a[25] - a[7] - a[11] + a[23] - a[9] * a[15] - a[2] + a[28] % a[17] * a[1] % a[0] - a[3] % a[16] - a[12] * a[20] + a[29] + a[27] % a[24] % a[19] - a[13] == -46 && a[21] - a[36] - a[16] + a[28] - a[3] % a[1] + a[35] - a[8] - a[30] + a[29] % a[19] + a[39] - a[2] + a[24] * a[11] % a[34] % a[15] % a[38] % a[12] - a[33] + a[20] % a[14] - a[18] - a[31] + a[5] % a[10] + a[7] + a[4] % a[26] * a[23] + a[27] - a[6] * a[37] % a[17] * a[25] % a[9] % a[22] - a[0] * a[13] % a[32] == 184 && a[38] * a[34] % a[30] - a[31] + a[26] - a[27] - a[16] % a[0] - a[18] % a[24] % a[29] % a[12] + a[20] - a[15] * a[7] + a[17] - a[13] - a[36] - a[25] % a[8] * a[22] + a[6] - a[35] % a[39] + a[9] % a[3] % a[10] % a[19] * a[37] + a[40] % a[28] + a[41] - a[2] * a[23] * a[4] % a[1] - a[32] % a[14] % a[11] * a[21] % a[5] + a[33] == 167 && a[13] - a[6] % a[5] - a[0] % a[9] + a[21] + a[23] + a[18] % a[17] % a[16] % a[7] - a[20] % a[1] * a[15] % a[19] % a[8] * a[2] % a[22] - a[14] % a[11] % a[10] * a[4] % a[3] + a[12] == 155 && a[23] + a[26] % a[17] % a[20] * a[39] - a[7] - a[0] - a[27] * a[15] + a[25] % a[18] % a[16] % a[42] % a[32] + a[6] * a[14] - a[2] - a[36] + a[35] + a[29] + a[34] - a[31] - a[5] + a[41] % a[3] * a[13] * a[10] % a[12] - a[21] * a[38] % a[24] - a[46] + a[33] % a[4] % a[11] * a[40] % a[44] + a[28] - a[22] % a[30] + a[8] - a[19] - a[1] * a[43] * a[37] % a[45] + a[9] == 183 && a[22] % a[18] + a[12] * a[23] - a[41] * a[17] + a[15] - a[5] % a[25] - a[14] % a[16] - a[3] + a[36] + a[1] - a[42] + a[26] % a[39] % a[10] + a[28] % a[27] - a[7] - a[30] - a[19] % a[2] + a[32] % a[0] - a[6] + a[11] - a[13] % a[35] * a[29] - a[4] * a[24] * a[37] % a[40] + a[31] % a[33] * a[38] - a[21] + a[8] * a[34] % a[20] * a[9] == 39 && a[6] % a[0] * a[9] % a[2] % a[4] % a[10] - a[14] + a[13] % a[11] - a[8] % a[5] + a[7] + a[12] + a[1] - a[3] == 163 && a[13] - a[15] + a[23] * a[17] * a[27] % a[8] - a[14] % a[22] - a[29] * a[5] % a[25] + a[4] % a[10] - a[19] % a[7] % a[12] % a[11] + a[20] + a[31] + a[18] + a[21] * a[30] % a[1] % a[28] + a[0] % a[26] + a[6] % a[24] % a[3] - a[2] - a[16] - a[9] == 147"""

    list_exp = js.split("&&")
    flag = ""
    now = 0
    for k in range(0, 43):
        # print(list_exp)
        for i in list_exp:
            if (i.count("a") == 1):
                for w in range(1, 255):
                    replace_reg = re.compile(r'a\[\d{1,2}\]')
                    num = replace_reg.findall(i)[0].strip('a[').strip(']')
                    temp = replace_reg.sub(str(w), i)
                    try:
                        if (eval(temp) == 1):
                            rep = re.compile(r'a\[' + num + r'\]')
                            for l in range(0, len(list_exp)):
                                list_exp[l] = rep.sub(str(w), list_exp[l])
                            print(str(chr(w) + " " + num))
                            flag += chr(w)
                            break
                    except Exception as e:
                        print(temp)
    print(flag)
    # for i in list_exp:
    # print(i)


def main():
    pwn()


if __name__ == "__main__":
    print("------------------    Enter __main__    ------------------")

    print(u"[Current work directory is : ]\t" + os.getcwd())
    print(u"[Current process ID is : ]\t" + str(os.getpid()))
    print("\n")
    main()

    print("------------------    Leave __main__    ------------------")
